package org.dromara.exam.domain.bo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author xiyin321
 * @since 2025/1/27
 */
@NoArgsConstructor
@Data
public class QuestionSchemaBo {

    /**
     * 问题的唯一标识符
     */
    private String id;

    /**
     * 问题的标题
     */
    private String title;

    /**
     * 问题的类型
     */
    private String type;

    /**
     * 问题的难度
     */
    private String difficulty;

    /**
     * 问题的排序
     */
    private int orderNum;

    /**
     * 问题的属性信息，如考试分数、考试答案模式等
     */
    private AttributeDTO attribute;

    /**
     * 问题的子问题列表
     */
    private List<ChildrenDTO> children;


    /**
     * 问题属性的辅助类，包含与问题相关的属性信息
     */
    @NoArgsConstructor
    @Data
    public static class AttributeDTO {
        /**
         * 考试分数
         */
        private int examScore;

        /**
         * 考试答案模式
         */
        private String examAnswerMode;

        /**
         * 考试解析
         */
        private String examAnalysis;
    }

    /**
     * 子问题的辅助类，包含子问题的相关信息
     */
    @NoArgsConstructor
    @Data
    public static class ChildrenDTO {
        /**
         * 子问题的唯一标识符
         */
        private String id;

        /**
         * 子问题的标题
         */
        private String title;

        /**
         * 子问题的属性信息，如正确答案等
         */
        private AttributeDTO attribute;

        /**
         * 子问题属性的辅助类，包含子问题的具体属性信息
         */
        @NoArgsConstructor
        @Data
        public static class AttributeDTO {
            /**
             * 考试正确答案
             */
            private String examCorrectAnswer;
        }
    }
}

